import createElement from "./createElement";
import patchNode from "./patchNode.JS";
import vnode from "./vnode";

export default function (oldVnode, newVnode) {
    // 如果是真实节点需要转换为虚拟节点
    if (oldVnode.sel === "" || oldVnode.sel === undefined) {
        oldVnode = new vnode(oldVnode.tagName.toLowerCase(), {}, [], undefined, oldVnode)
    }

    // 判断是否是同一个节点
    if (newVnode.key == oldVnode.key && oldVnode.sel === newVnode.sel) {
        // 进行精细化比较
        patchNode(oldVnode, newVnode)
    } else {
        // 不是同一个节点，暴力删除添加节点
        let newVnodeElm = createElement(newVnode)
        oldVnode.elm.parentNode.insertBefore(newVnodeElm, oldVnode.elm)
        oldVnode.elm.parentNode.removeChild(oldVnode.elm)

    }
}